(rx-or): Fix the case of "(rx (and ?a (or ?b ?c) ?d))".
authorEli Zaretskii <eliz@gnu.org>
Sat, 1 Nov 2003 17:35:23 +0000 (17:35 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 1 Nov 2003 17:35:23 +0000 (17:35 +0000)
lisp/emacs-lisp/rx.el

index 8e38aed10d2cfc1c36ba517ad1ca7ee5de378b41..bc16a84b156da327535fafbabe44dcbb561536ba 100644 (file)
@@ -286,9 +286,11 @@ FORM is of the form `(and FORM1 ...)'."
     (dolist (arg (cdr form))
       (unless (stringp arg)
        (setq all-args-strings nil)))
-    (if all-args-strings
-       (regexp-opt (cdr form))
-      (mapconcat #'rx-to-string (cdr form) "\\|"))))
+    (concat "\\(?:"
+           (if all-args-strings
+               (regexp-opt (cdr form))
+             (mapconcat #'rx-to-string (cdr form) "\\|"))
+           "\\)")))
 
 
 (defun rx-quote-for-set (string)